package Package.StreamStream.TBase;

import java.util.ArrayList;

public class TBase {
    public static void TBase(){
//体验Stream流【理解】
//案例需求
//按照下面的要求完成集合的创建和遍历
//创建一个集合，存储多个字符串元素
//把集合中所有以"张"开头的元素存储到一个新的集合
//把"张"开头的集合中的长度为3的元素存储到一个新的集合
//遍历上一步得到的集合
        ArrayList<String> list = new ArrayList<String>();
        list.add("林青霞");
        list.add("张曼玉");
        list.add("王祖贤");
        list.add("柳岩");
        list.add("张敏");
        list.add("张无忌");
        //把集合中所有以"张"开头的元素存储到一个新的集合
        ArrayList<String> zhangList = new ArrayList<String>();
//        startsWith() 方法用于检测字符串是否以指定的前缀开始。
        for(String s : list) {
            if(s.startsWith("张")) {
                zhangList.add(s);
            }
        }
        System.out.println(zhangList);
        ArrayList<String> threeList = new ArrayList<String>();
        for(String s : zhangList) {
            if(s.length() == 3) {
                threeList.add(s);
            }
        }
        System.out.println(threeList);
        for(String s : threeList) {
            System.out.println(s);
        }
        System.out.println("--------");
//        使用Stream流优化
        list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(System.out::println);
    }
}
//好处
//Stream流的好处
//        直接阅读代码的字面意思即可完美展示无关逻辑方式的语义：获取流、过滤姓张、过滤长度为3、逐一打 印
//        Stream流把真正的函数式编程风格引入到Java中